package com.zh.blog.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zh.blog.dto.LabelOptionDto;
import com.zh.blog.dto.MenuDto;
import com.zh.blog.dto.UserMenuDto;
import com.zh.blog.model.Menu;
import com.zh.blog.vo.ConditionVO;
import com.zh.blog.vo.MenuVO;

import java.util.List;

/**
 * 菜单服务
 * @author ZhengHao
 * Created At 2022/7/30.
 **/
public interface MenuService extends IService<Menu> {
    /**
     * 查看用户菜单
     * @return
     */
    List<UserMenuDto> listUserMenus();

    /**
     * 查看角色菜单选项
     * @return 角色菜单选项
     */
    List<LabelOptionDto> listMenuOptions();

    /**
     * 查看菜单列表
     * @param conditionVO 条件
     * @return 菜单列表
     */
    List<MenuDto> listMenus(ConditionVO conditionVO);

    /**
     * 新增或者修改菜单
     * @param menuVO 菜单信息
     */
    void saveOrUpdateMenu(MenuVO menuVO);

    /**
     * 删除菜单
     * @param menuId 菜单ID
     */
    void deleteMenu(Integer menuId);
}